package org.example.request;

import io.netty.handler.codec.http.cookie.Cookie;
import org.asynchttpclient.Request;

/**
 * 提供可修改的request参数操作接口
 */
public interface IGatewayRequest {

    public void setModifyHost(String host); //修改目标服务主机
    public String getModifyHost();


    public void setModifyPath(String path); //修改访问路径
    public String getModifyPath();

    public void addHeader(CharSequence name, String value); //添加请求头
    public void setHeader(CharSequence name, String value); // 设置请求头

    public void addQueryParam(String name, String value); //添加请求参数
    public void addFormParam(String name, String value); //添加表单请求参数

    public void addOrReplaceCooie(Cookie cookie);

    public void setRequestTimeout(int requestTimeout);

    public String getFinalUrl(); //获取最终的请路径，包含请求参数

    public Request build();
}
